import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * BMP significa Boyevaya Mashina Pekhoty, que se traduce como "Unidad Anti Infantería"
 * 
 * @author Mario Alberto Valencia Valero
 */

public class BMP extends Unidad
{
    private int turnosParaDisparar = 0;
    private GreenfootSound sonidoDisparo,
                   sonidoExplosion;
         
    /**
     * Constructor
     * @param col  color de la unidad
     * @param humano  controlado por el jugador?
     */
    public BMP(Color col, boolean humano)
    {
        super(col, humano);
        setImage("bmp_"+color.name()+".gif");
        getImage().scale( (int)(getImage().getWidth()*.5), (int)(getImage().getHeight()*.5) );
        vida = 50;
        velocidad = 10;
        sonidoDisparo = new GreenfootSound("machinegun.mp3");
        sonidoExplosion = new GreenfootSound("tank_exploding.wav");
    }
    
    /**
     * Actuar.
     */
    public void act() 
    {
        super.act();
        if( turnosParaDisparar > 0 ) turnosParaDisparar--;
    }
    
    /**
     * Checa si una unidad está en el rango de disparo.
     * @param u  unidad enemiga
     * @return true si la unidad está en rango, si no, false
     */
    protected boolean enRango( Unidad u ){
        return distancia(u) < 200;
    }
       
    /**
     * Atacar al objetivo.
     */
    public void atacar(){
        apuntar();
        if( turnosParaDisparar == 0 ) {
            turnosParaDisparar = 2;
            Disparo d = new Disparo();
            getWorld().addObject( d, getX(), getY() );
            d.setRotation( getRotation()+3 );
            d.move(25);
//            ImpactoBala ib1 = new ImpactoBala();
            for(int i=0; i<5; i++)
                disparar();
//            getWorld().addObject( ib1, objetivo.getX()+Greenfoot.getRandomNumber(10), objetivo.getY()+Greenfoot.getRandomNumber(10) );
            sonidoDisparo.play();
//            objetivo.bajarVida(5);
        }
    }
    
    /**
     * Muere.
     */
    protected void muere(){
        sonidoExplosion.play();
    }
}
